/* 
 * File:   SDLLib.h
 * Author: johannes
 *
 * Created on January 25, 2014, 12:14 PM
 */

#ifndef SDLLIB_H
#define	SDLLIB_H

#include <SDL2/SDL.h>

namespace GUL {
    namespace System {
        namespace Graphic {
            ///Should be one of the few globalObjects
            ///TODO: Transform this class into a Singleton

            class SDLLib {
            private:
            protected:
            public:

                SDLLib();
                SDLLib(Uint32 flag);
                virtual ~SDLLib();

                void InitTTFSupport();
                void InitVideoSupport();
                void InitAudioSupport();
                void InitEventsSupport();
                void InitTimerSupport();
                void InitJoyStickSupport();
                void InitHapticSupport();
                void InitGameControllerSupport();

                void QuitTTFSupport();
                void QuitVideoSupport();
                void QuitAudioSupport();
                void QuitEventsSupport();
                void QuitTimerSupport();
                void QuitJoyStickSupport();
                void QuitHapticSupport();
                void QuitGameControllerSupport();

                bool isTTFSupportEnabled();
                bool isVideoSupportEnabled();
                bool isAudioSupportEnabled();
                bool isEventsSupportEnabled();
                bool isTimerSupportEnabled();
                bool isJoyStickSupportEnabled();
                bool isHapticSupportEnabled();
                bool isGameControllerSupportEnabled();


            };
        }
    }

}

#endif	/* SDLLIB_H */

